const gulp = require("gulp"); //  引入gulp 插件
const connect = require("gulp-connect"); // 引入服务器插件 ，构建服务器
const sass = require("gulp-sass")(require("sass")); //   引入gulp-sass 、sass 插件
const sourcemaps = require("gulp-sourcemaps"); //   引入

// 拷贝  HTML文件到 dist
gulp.task("copyHtml", (done) => {
  gulp.src("html/*.html").pipe(gulp.dest("dist/html")).pipe(connect.reload());
  done();
});
gulp.task("copyCss", (done) => {
  gulp.src("css/*.css").pipe(gulp.dest("dist/css")).pipe(connect.reload());
  done();
});
gulp.task("copyJs", (done) => {
  gulp.src("js/*.js").pipe(gulp.dest("dist/js")).pipe(connect.reload());
  done();
});
gulp.task("copyIconfont", (done) => {
  gulp
    .src("iconfont/*.ttf")
    .pipe(gulp.dest("dist/iconfont"))
    .pipe(connect.reload());
  done();
});
// 将sass文件中的scss 文件转换成 css 文件 并拷贝到dist中
gulp.task("sass", (done) => {
  gulp
    .src("sass/*.scss")
    .pipe(sourcemaps.init()) // 初始化转换
    .pipe(sass())
    .pipe(sourcemaps.write("./"))
    .pipe(gulp.dest("dist/css"))
    .pipe(connect.reload());
  done();
});
// 监听 执行的拷贝命令
gulp.task("watch", (done) => {
  gulp.watch("html/*.html", gulp.series("copyHtml"));
  gulp.watch("sass/*.scss", gulp.series("sass"));
  gulp.watch("js/*.js", gulp.series("copyJs"));
  gulp.watch("css/*.css", gulp.series("copyCss"));
  gulp.watch("iconfont/*.iconfont", gulp.series("copyIconfont"));

  done();
});
// 创建服务器
gulp.task("server", (done) => {
  connect.server({
    root: "dist",
    livereload: true,
  });
  done();
});
//  默认执行 命令
gulp.task("default", gulp.series("server", "watch"));
